php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2009, 05:22  
Neuer Benutzer
 
Registriert seit: 15.12.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
Ruffstaarr befindet sich auf einem aufstrebenden Ast
Standard Entweder falscher LEFT JOIN oder ein Denkfehler

Hallo
habe ein riesen Problem an dem ich einfach nicht Weiterkomme...
also habe eine Function:

PHP-Code:
/***************
* einen sql Query ausführen
* Beschreibung: nimmt eine sql SELECT Anfrage auf und gibt sie in einem Array[0....]['rowname'] zurück!
*               bei einem Fehler wird die Meldung in dem Array["error" ] zurückgegeben
* Name: getSQL()
*
* @param $sql string sql SELECT Befehl
* @uses getConnection()
* @returns Array[][]
*/
function getSQL($sql"0") {
    
$con=getConnection();
    if (
$sql== "0") {
       
$Wert= array("error" => "Sie haben keinen Wert übergeben");
       return 
$Wert;
    } else if (
substr($sql,0,6) == "SELECT"){
        
$result=mysql_query($sql);
        
$daten=array();
        while (
$row mysql_fetch_array($result)) {
            
$data[]= $row;
        }
        
mysql_close($con);
        return 
$data;
    } else {
        
$Wert= array("error" => "Sie haben keinen SELECT query übergeben!");
        return 
$Wert;
    }

So Jetzt kommt mein query z.B. so:
PHP-Code:
$abfrage"SELECT video.urlname, video.beschreibung, video.Datum,
                  videokategorie.Kategorie AS videokat
                  FROM video LEFT JOIN videokategorie 
                  ON video.Kategorie = videokategorie.id
                  LIMIT 0,20"

jetzt möchte ich Diese Daten in eine Tabelle ausgeben:
PHP-Code:
$tablegetSQL($abfrage);
echo
"<table>";
foreach(
$table as $Reihe => $Werte) {
    echo
"<tr>\n <td>".($Reihe+1)."</td>\n";
    foreach(
$Werte as $Key => $Wert){
        echo
"<td>".$Wert."</td>";
    } 
//Ende innere Schleife
    
echo"</tr>";
//Ende äussere Schleife
echo "</table>"
Die Tabelle die ich bekomme sieht aber so aus
Code:
<table>
//foreach Reihe
<tr>
<td> Reihe+1 </td>
<td> urlname </td>
<td> urlname </td>
<td> beschreibung </td>
<td> beschreibung </td>
<td> datum </td>
<td> datum </td>
<td> videokat </td>
<td> videokat </td>
</tr>
//ende
</table>
Wieso diese doppelten Einträge? was mache ich falsch?
ach ja... wie kann ich die $keys von $Werte einmal als Spaltenindex angeben, ohne sie vorher zu kennen?? Ist es möglich zwischen bestimmten Elementen der foreach schleife noch code Einzufügen etwa mit if ($key==urlname){??

Geändert von Ruffstaarr (15.12.2009 um 05:33 Uhr).
Ruffstaarr ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.12.2009, 07:21  
Erfahrener Benutzer
 
Registriert seit: 26.10.2009
Beiträge: 425
PHP-Kenntnisse:
Fortgeschritten
Yoshi- befindet sich auf einem aufstrebenden Ast
Standard

Mysql_fetch_array liefert 2mal das selbe array,einmal mit numerischen Indexes und einmal "normalen" indexes.
Yoshi- ist offline  
Alt 15.12.2009, 10:58  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Statt mysql_fetch_array() schreibst du mysql_fetch_assoc()
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 15.12.2009, 20:35  
Neuer Benutzer
 
Registriert seit: 15.12.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
Ruffstaarr befindet sich auf einem aufstrebenden Ast
Standard danke

und was ist, wenn ich mysql_fetch_object nehme?? wo ist der Unterschied?
warum kann ich dann nicht einfach ein Element mit $table[1]['urlname'] ausgeben?
"Cannot use object of type stdClass as array" ist die Fehlermeldung. Mit foreach geht es aber!
wo kann ich die genauen Rückgabewerte sehen?
Ruffstaarr ist offline  
Alt 15.12.2009, 21:11  
Erfahrener Benutzer
 
Registriert seit: 01.12.2009
Beiträge: 645
PHP-Kenntnisse:
Fortgeschritten
draco88 befindet sich auf einem aufstrebenden Ast
draco88 eine Nachricht über ICQ schicken
Standard

Bei mysql_fetch_object musst du statt $table[1]['urlname'], $table[1]->urlname nehmen, und mit foreach geht es deshalb, weil man auch durch die öffentlichen Variablen einer Instanz iterieren kann.

lg
draco
draco88 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] left join problem Bernd-m Datenbanken 9 24.08.2009 13:52
[Erledigt] LEFT JOIN Daten ausgeben bei 1:n Beziehung Asipak PHP Tipps 2009 11 01.08.2009 15:27
JOIN und LEFT JOIN verbinden? Dynamite53 Datenbanken 8 15.05.2009 15:16
Persistence Framework #Avedo Software-Design 37 28.03.2009 17:32
[Erledigt] mit einer CHECKBOX feld nach mehreren wörtern durchsuchen taurus Datenbanken 20 01.12.2008 10:49
Select / Left Join Performance mark007q Datenbanken 4 17.11.2008 15:14
[Erledigt] Left join und inner join stefanjann Datenbanken 7 16.10.2008 15:45
WHERE-Clause im Left Join cycap Datenbanken 2 06.11.2007 11:06
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
LEFT OUTER JOIN auf Nicht-Tabelle inu Datenbanken 15 29.03.2007 20:21
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
[gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!? stefanjann Datenbanken 3 24.10.2006 11:32
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] LEFT JOIN Problem Datenbanken 11 21.03.2005 16:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mysql_fetch_object join, php left join, php fetch_object mit left join, php mysql_fetch_object join id, sql left join array, sql array left join, \left join\ alles von ausgeben, left join problem, sql \left join ( select\, join für anfänger, left join kein eintrag ausgeben, mysql_fetch_object from left join, video left.php, php left join array, php left join tabelle ausgeben, left join mit where kombinieren, php sql left join \select *\, left join tabelle ausgeben, sql select join and null, php mysql_fetch_object left-join

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum