1.2k Aufrufe
Gefragt in Datenbanken von noahsraven Einsteiger_in (37 Punkte)
Hi,

Ich beziehe mich hier auf den Forumsbeitrag:
https://supportnet.de/fresh/2006/3/id1300119.asp
den ich nicht  wieder ausgrabe  möchte da dieser anscheinend schon
von 2006 stammt.

Dort wird die Lösung:

"select concat(vname, nname) as name from tabelle"

angeboten.

Die bei mir:

SELECT CONCAT(street, '  ', nr) as Strasse FROM win_player ORDER
BY ID

lautet.

Die tatsächlich auch funktioniert ABER dessen Ergebnis nur temporär
im PHPMyAdmin angezeigt wird anstatt das das Resultat in der schon
vorhandenen, leeren Spalte Strasse permanent gespeichert wird.

Kann mir jemand helfen?

Danke im voraus

Noah's Raven

18 Antworten

0 Punkte
Beantwortet von
Hallo, welche Versionen:
[*] PHP
[*] MySQL
Du willst ja die Werte in einer Tabelle anzeigen, ein Beispiel mit PDO_MYSQL.
HTML Tags in einer PHP Datei:

[code]$dbh = new PDO($dsn, $dbuser, $dbpass);
    $dbh->exec('SET CHARACTER SET utf8');
    $sth = $dbh->query('SELECT refnr, anrede, nachname, passwort, FROM Teilnehmer
    WHERE refnr >= '.$pos.' LIMIT 15 ');
    $data = $sth->fetchALL(PDO::FETCH_ASSOC);
echo '
<table class="table">
    <tr>
    <th>Ref-Nr</th>
    <th>Anrede</th>
    <th>Nachname</th>   
    <th>Passwort intern</th>
    </tr>';
    foreach($data as $row) {
    echo "<tr>";
echo "<td >".$row['refnr']."</td>";
echo "<td>".$row['anrede']."</td>";
echo "<td>".$row['nachname']."</td>";   
echo "<td>".$row['passwort']."</td>";   
echo "</tr>";[/code]Oben (echo ') wird die Tabelle beschriftet und unten (foreach) die Datensätze von der Datenbank abgeholt und entsprechend ausgegeben.
Das ist natürlich nicht der ganze Code, nur eben die Tabelle, also wie sie aufgebaut wird.
Hier findest du einiges dazu:[url=http://www.schattenbaum.net/php/daten_formatiert_ausgeben.php]PHP und mySQL - Daten als Tabelle formatiert ausgeben[/url]

Gruß
0 Punkte
Beantwortet von
}
ist weg;-D
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
Hi

@notmysql
es sind MysQL5.6 und PHP5.6
Aber  da ich nach MySQL-Befehlen fragte, die ich in der MySQL-Shell ausführ,e sollte
die PHP-Version wohl nebensächlich sein.
Es sei denn ich benutze den PHPMyAdmin was ich auch gerne mal tue, dann könnts ne
Rolle spielen.

@computerschrat
Was du da als Beispiel angibst ($result = mysql_query ...) ist php oder??
schon deine erste Zeile gibt einen Fehler in der MySQL-Shell und im PHPMyAdmin aus.
Obwohl der, nach deinen Angaben, von dir nicht getestete Teil stimmt:
SELECT CONCAT(street, ' ', nr) as Strasse FROM win_player ORDER BY ID
den nutzte ich ja bereits.

naja, vielleicht sollte ich nicht so engstirnig sein und auch PHP nutzen

MFG Noah's Raven
0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo Noah's Raven,

ja, die Zuweisung $VARIABLENNAME = ... ist PHP. Ich war stillschweigend davon ausgegangen, dass du PHP benutzt. Das macht die Sache mit Zuweisung und Benutzung von Variablen einfacher. Übrigens, auch die Antowrt #11 vewendet PHP.

Gruß
computerschrat
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
Hi,

(in Antwort 15 war ein Fehler habe Admin schon gebeten diese zu löschen.

hatte eben noch einmal Zeit das ganze zu testen.

also, ich habe es noch einmal mit nur MySQL versucht, und bin eigentlich nahe dran.

INSERT INTO win_player_copy (Strasse) SELECT CONCAT(_Strasse, '  ',
Hausnummer) AS Strasse FROM win_player_copy ORDER BY ID;

erledigt genau das was ich will nur schreibt dieser Befehl das Resultat in neue
Tabellenzeilen.

so werden aus ca. 8500 Datensätzen ca. 17000 Datensätze.

habe das Gefühl ich muss das mit UPDATE erledigen, habe damit aber noch weniger
Erfolg.

Hat noch jemand von euch eine Idee für nur MySQL?

Grüße Noah's Raven
0 Punkte
Beantwortet von
Ist schon eine lange Zeit als ich mich mit dem phpMyAdmin beschäftigte, aber eins war dabei immer wichtig.
Und zwar falls irgendwelche Fragen zu beantworten waren, dann waren immer die Angaben wie:
[*] phpMyAdmin Version
[*] MySQL Version
[*] DB Art (InnoDB, MyISAM etc.)
dabei sehr hilfreich.
Denn vieles ändert sich, also es kommen neue Sachen dazu oder werden welche weggelassen und daran wird es wohl liegen, dass die Lösung aus deinem Link (vom 2006) jetzt nicht wie gewünscht funktioniert.
Vielleicht wenn du diese fehlenden Angaben machen wirst, wird sich hier einer finden der dir bei deinem Problem helfen kann.
Also für die Wartezeit hier mal was zum [url=https://www.php-einfach.de/mysql-tutorial/phpmyadmin-datenbank-verwalten/]phpMyAdmin[/url].

[quote]so werden aus ca. 8500 Datensätzen ca. 17000 Datensätze.[/quote]Sind das jetzt doppelte Einträge, also gleiche Einträge und unterschiedliche IDs?

Was du als "nur" MySQL bezeichnest, ist etwas zu stark vereinfacht, dann eigentlich hast du hier mit zwei Sachen zu tun, dem phpMyAdmin und MySQL.
MySQL der wo einzeln am Laufen ist, kann schon unterschiedliche Syntax bedürfen, ist mir damals aufgefallen.
Selbst beim Zugriff auf dem phpMyAdmin vom Terminal aus und direkt auf dem, also um eine Abfrage zu realisieren, gab es Unterschiede.
Persönlich denke ich, dass du dein Vorhaben nur über die Nutzung vom PHP realisieren kannst, da man so mehrere unabhängige Abfragen starten und diese dann nach belieben zusammen basteln/ausgeben kann.

Viel Erfolg!
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
Hi,

@notmysql
PHP- und MySQL-Version sind, wie oben schon einmal erwähnt, jeweils 5.6
DB-Art ist MyISAM
PHPmyAdmin-Version  4.2.12

[quote]Sind das jetzt doppelte Einträge, also gleiche Einträge und unterschiedliche
IDs?[/quote]
Jain, Bei den vorhandenen Datensätzen hat der oben genannte INSERT INTO  
Befehl die Spalte Strasse leer gelassen und Neue angelegt bei denen nur die Spalte
Strasse belegt ist.
Der Index hat natürlich entsprechend weitergezählt.

ABER . . .
DAS IST JETZT NICHT MEHR WICHTIG DENN ICH HABE DIE LÖSUNG :D

ich musste wirklich UPDATE nutzen und das SELECT vor dem CONCAT  löschen.
Und der ganze Rattenschwanz mit FROM etc. war auch überflüssig.

Die Lösung lautet schlicht:

UPDATE `win_player_copy` SET `Strasse` = CONCAT(_Strasse,'  ',Hausnummer);


Mann, das Leben/MySQL kann so einfach sein :D


MFG Noah's Raven
0 Punkte
Beantwortet von
Upps, tatsächlich hast du schon alles angegeben, sorry...
Und schön, dass du es wie gewollt hinbekommen hast;-D

Gruß
...